package cn.edu.ahu.aircondition.modbus.service.service;

import cn.edu.ahu.aircondition.modbus.service.domain.CtrlDomain;
import cn.edu.ahu.aircondition.modbus.service.domain.CtrlRegDomain;
import cn.edu.ahu.aircondition.modbus.service.domain.QueryRegDomain;
import cn.edu.ahu.aircondition.modbus.service.entity.*;

import java.util.List;

/**
 *
 * Created by ahu on 2017/6/11.
 */
public interface AirConService {
    /**
     * 根据空调idList获取空调信息List
     * @param deviceAddressList      空调addressList
     * @return                  空调信息List
     */
    List<AirConStatusEntity> listAirConStatusDeviceAddress(List<Integer> deviceAddressList);

    /**
     * 根据空调idList获取空调信息List
     * @param deviceIdList      空调idList
     * @return                  空调信息List
     */
    List<AirConCtrlEntity> listAirConCtrlByDeviceId(List<Integer> deviceIdList);
    /**
     * 获取控制表中的所有数据
     * @return                  空调信息List
     */
    List<CtrlRegDomain> listCtrlRegDomain();
    /**
     * 获取控制表中的所有数据
     * @return                  空调信息List
     */
    List<CtrlDomain> listCtrlDomain();
    /**
     * 根据空调idList获取空调信息List
     * @return                  空调信息List
     */
    List<AirConSetEntity> listAirConSet();
    /**
     * 添加空调控制实时信息List
     * @param airConStatuWaterEntityList    空调查询实时信息List
     */
    void saveAirStatusWater(List<AirConStatuWaterEntity> airConStatuWaterEntityList);
    /**
     * 更新空调状态信息List
     * @param airConStatusEntityList    空调状态信息List
     */
    void updateAirConStatus(List<AirConStatusEntity> airConStatusEntityList);/**
     * 更新空调状态信息List
     * @param airConCtrlEntityList    空调状态信息List
     */
    void updateAirConCtrl(List<AirConCtrlEntity> airConCtrlEntityList);


    AirConStatusEntity queryDataCompare(AirConStatusEntity oldAirConStatusEntity,QueryRegDomain newAirConStatusDomain);
}
